// 对于一颗二叉树来说，它的高度等于左右子树的高度最大值，加上 1
var maxDepth = function (root) {
  if (!root) return 0;
  return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}

// 层序遍历
var maxDepth = function (root) {
  if (!root) return 0;
  let res = 0;
  let queue = [root];
  while(queue.length) {
    // 当前层中二叉树的节点数量
    let len = queue.length;
    res++;
    // 依次将下一层的二叉树的节点放入队列
    while(len--) {
      let node = queue.shift();
      if (node.left) queue.push(node.left);
      if (node.right) queue.push(node.right);
    }
  }
  return res;
}